1. Field of the Invention
The invention relates in general to a method for generating a three-dimensional stereographic image using a computer, and more particularly to a method for generating a three-dimensional stereographic image on the basis of a two-dimensional planar image for one eye and the depth information of the image stored in the Z-buffer.
2. Description of the Prior Art
Generally, a viewer can perceive a three-dimensional depth from eyes to the object of an image with any of the following two methods, one method based on one eye and the other method based on two eyes.
In one eye method, the viewer can perceive phenomena such as farness and nearness, parallel displacement, relative object size, overlap, brightness and shadow, focus adaptation, etc., with his one eye. The perspective phenomenon is based on parallel lines converging on the disappearance point. The parallel displacement phenomenon is based on the fact that, when the viewer""s head moves, an object near the viewing point moves to a relatively greater degree than an object far from the plane of projection. The overlap phenomenon is based on the fact that a near object hides a far object. The focus adaptation phenomenon is based on the difference between the levels of strain applied to eye muscle in viewing objects at different distances.
In the two eyes method, the viewer can perceive an additional phenomenon in addition to the above phenomena with his two eyes. The additional phenomenon is based on the fact that the position of projection on the retina is different according to the convergence angle of two eyes, or the distance between the viewer and the object.
The perception by one eye provides a weak impression of the three-dimensional distance. However, the perception by both eyes provides a very strong impression of the three-dimensional distance because the human brain/eye system combines two different images perceived respectively by both eyes.
The characteristics of perception based on two eyes as stated above are applied to the stereography, which generates a stereographic image according to any of the variety of proposed technical approaches.
A conventional stereographic image generation method generates two two-dimensional images of one object, one image for the left eye and the other image for the right eye. This conventional stereographic image generation method generates two images projected on a two-dimensional plane on the basis of two different centers of projection (one center for the left eye and the other center for the right eye). For this purpose, the conventional image generation method employs the graphic pipeline structure as shown in FIG. 1.
FIG. 1 is the functional block diagram of the graphic pipeline structure employed in the conventional stereographic image generation method. The computer has to perform the following work in order to create and visualize the desired image on the screen of the computer using a three-dimensional graphic program.
The three-dimensional graphic program comprises of application-specific processing 110, scene processing 111, polygon processing 112, pixel processing 113, scene processing 121, polygon processing 122, and pixel processing 123. The scene processing 111, polygon processing 112, and pixel processing 113 constitute the procedure of generating an image projected on a two-dimensional plane for one eye (left eye). The scene processing 121, polygon processing 122, and pixel processing 123 constitute the procedure of generating an image projected on the two-dimensional plane for the other eye (right eye). Because the two procedures are identical, a description will hereinafter be given centering around the procedure of generating the two-dimensional image with respect to the left eye.
The application-specific processing 110 is the task where the user operates or moves a three-dimensional model according to an application program. The scene varies according to variations in model, illumination and background selection by the user. This scene variation is stored in a scene graph 117. This scene graph 117 is a graph-type database for storing detailed information of scenes, and all the information necessary to define scenes, such as model, illumination, sound, etc.
The scene processing 111 is the task to express an actual three-dimensional scene on the screen. This processing 111 reads information from the scene graph 117 and creates three-dimensional polygons to be rendered, based on the scene graph 117. In three-dimensional graphics, objects displayed on the screen are basically made of three-dimensional polygons. The scene processing 111 conducts a culling or xe2x80x9cLevel of Detail (LOD)xe2x80x9d operation with respect to the scene graph 117 to eliminate unnecessary polygons and finally obtains a set of three-dimensional polygons.
The polygon processing 112 performs the task 114 of displaying the set of polygons on a two-dimensional monitor screen. The polygon processing 112 transforms three-dimensional polygons into two-dimensional polygons by projecting those three-dimensional polygons. At this time, the polygon processing 112 calculates brightness based on illumination, object texture, and other rendering information.
The pixel processing 113 creates color information of each pixel of an image which is finally displayed on the screen. The pixel processing 113 performs texturing, blending, and anti-aliasing operations on the basis of two-dimensional polygons and texture information. Then, the pixel processing 113 stores the resultant color information of each pixel of the two-dimensional image for the left eye in the frame buffer 115. The pixel processing 113 also stores depth information of each pixel in the Z-buffer 116 which provides the perspective effect (far and near phenomenon) of an object.
In a similar manner, the scene processing 121 creates three-dimensional polygons for the right eye, which are then transformed into two-dimensional polygons by the polygon processing 122. The pixel processing 123 stores color information and depth information of each pixel for the right eye in the frame buffer 125 and the Z-buffer 126, respectively.
In a general graphic pipeline structure, the above-stated four processing steps must be performed to display an object on the screen. Further, for the display of a stereographic image on the screen, two images required for two eyes must be obtained through two graphic pipeline structures as described above. Moreover, for the purpose of obtaining the two images required for two eyes, the stereographic projection step and the step for final image display on the computer screen must be performed twice, one for each image.
Projection matrices for the projection step can be expressed by the following equations 1 and 2.                                                                         [                                  S                  L                                ]                            =                                                                    [                                          Tr                      X                                        ]                                    ⁡                                      [                                          P                      rz                                        ]                                                  =                                  xe2x80x83                                ⁢                                                      [                                          xe2x80x83                                        ⁢                                                                                            1                                                                          0                                                                          0                                                                          0                                                                                                                      0                                                                          1                                                                          0                                                                          0                                                                                                                      0                                                                          0                                                                          1                                                                          0                                                                                                                      e                                                                          0                                                                          0                                                                          1                                                                                      ⁢                                          xe2x80x83                                        ]                                    [                                      xe2x80x83                                    ⁢                                                                                    1                                                                    0                                                                    0                                                                    0                                                                                                            0                                                                    1                                                                    0                                                                    0                                                                                                            0                                                                    0                                                                    0                                                                                                                          -                            1                                                    /                                                      d                            c                                                                                                                                                              0                                                                    0                                                                    0                                                                    1                                                                              ⁢                                      xe2x80x83                                    ]                                                                                                        =                              xe2x80x83                            ⁢                              [                                  xe2x80x83                                ⁢                                                                            1                                                              0                                                              0                                                              0                                                                                                  0                                                              1                                                              0                                                              0                                                                                                  0                                                              0                                                              0                                                                                                                -                          1                                                /                                                  d                          c                                                                                                                                                e                                                              0                                                              0                                                              1                                                                      ⁢                                  xe2x80x83                                ]                                                                        [Equation  1]                                          [                      S            R                    ]                =                                            [                              Tr                X                            ]                        ⁡                          [                              P                rz                            ]                                =                      xe2x80x83                    ⁢                      [                          xe2x80x83                        ⁢                                                            1                                                  0                                                  0                                                  0                                                                              0                                                  1                                                  0                                                  0                                                                              0                                                  0                                                  0                                                                                            -                      1                                        /                                          d                      c                                                                                                                                        -                    e                                                                    0                                                  0                                                  1                                                      ⁢                          xe2x80x83                        ]                                              [Equation  2]            
In the above equations 1 and 2, SL is the two-dimensional image projection matrix for the left eye, and SR is the two-dimensional image projection matrix for the right eye.
For the generation of a stereographic image on the computer screen as stated above, two images of a three-dimensional object must be created, one image for the left eye and the other image for the right eye. To this end, the procedure of displaying an image on the computer screen as well as the stereographic projection step must be performed twice. All conventional three-dimensional stereographic image generation methods must follow through the above procedures, thus requires the computer calculation time, which is twice the time for generating non-stereo image. This results in considerable restrictions in use of stereographic images in three-dimensional simulations or animations.
The present invention has been made from the observation of the above problem. The objective of the present invention is to provide a method for generating a stereographic image using the Z-buffer, where two planar images required for generation of the stereographic image are created through generation of one image and simple additional tasks which are based on the created two-dimensional image, color information, and depth information stored in the Z-buffer.
In accordance with the present invention, the above objective can be accomplished by the method for generating a stereographic image using the Z-buffer. The first step is to create a two-dimensional image for one eye of the viewer by rendering a three-dimensional model, and to store color information and depth information of the first two-dimensional image in the frame buffer and the Z-buffer, respectively; the second step of creating the second two-dimensional image for the other eye of the viewer is based on the first two-dimensional image, the color information stored in the frame buffer, and the depth information stored in the Z-buffer; and the third step of generating the stereographic image is based on the first two-dimensional image and the second two-dimensional image.
Specifically, the above second step searches the first two-dimensional image for pixels corresponding respectively to pixels of the second two-dimensional image; and interpolates color values of the searched pixels of the first two-dimensional image to obtain color values of the second two-dimensional image.
More specifically, the above second step searches the first two-dimensional image for the pixels corresponding respectively to the pixels of the second two-dimensional image by applying the disparity (e) between left and right eyes of the viewer, the distance (de) from the viewing point to the plane of projection, and each pixel value (xL*) of the first two-dimensional image to the following equation.       x    L    *    =            x      R      *        +          2      ⁢                        e          xc3x97                      d            e                                                d            e                    -          z                    
Then, the above second step obtains the color values of the second two-dimensional image by applying the color values of the first two-dimensional image to the following equation:
xe2x80x83CxR=(1xe2x88x92a)CxL+aCxL+1
a=xL*xe2x88x92int(xL*)
where, CxR is color value at the pixel coordinate xR* of the second two-dimensional image, CxL is color value at the pixel coordinate xL* of the first two-dimensional image, and CxL+1 is color value at the next pixel coordinate xL+1* of the first two-dimensional image.
In accordance with the present invention, there is a computer-readable storage medium or processor, which stores a program to execute the above-stated method for generating stereographic images using the Z-buffer.